package com.hxzy.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxzy.common.core.domain.entity.SysMenu;
import com.hxzy.system.domain.dto.SysMenuSearchDTO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Set;

@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /**
     * 根据用户id查询角色对应的菜单权限
     * @param userId
     * @return
     */
    Set<String> selectMenuPermsByUserId(Long userId);

    /**
     * 根据用户ID查询菜单树信息
     * @param userId
     * @return
     */
    List<SysMenu> selectMenuTreeByUserId(Long userId);

    /**
     * 管理员查询所有的菜单信息（只包含功能和目录）
     * @return
     */
    List<SysMenu> selectMenuTreeAll();



    /**
     * 根据条件查询菜单
     * @param menuSearchDTO
     * @return
     */
    List<SysMenu> selectMenuList(SysMenuSearchDTO menuSearchDTO);

    /**
     * 根据角色ID查询它拥有的菜单
     * @param roleId
     * @return
     */
    List<Long> selectMenuListByRoleId(Long roleId);
}
